home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / progutil / stdwin.zoo / test / testpollevent.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-03-30  |  1.2 KB  |  75 lines

  1. #include <stdio.h>
  2. #include "stdwin.h"
  3.  
  4. void drawproc(); /* Forward */
  5.  
  6. EVENT ev;
  7.  
  8. main(argc, argv)
  9.     int argc;
  10.     char **argv;
  11. {
  12.     WINDOW *win;
  13.     
  14.     winitnew(&argc, &argv);
  15.     win = wopen("Test poll event", drawproc);
  16.     for (;;) {
  17. /*        if (wpollevent(&ev)) { */
  18.         wgetevent(&ev); {
  19.             if (ev.type == WE_COMMAND && ev.u.command == WC_CLOSE)
  20.                 break;
  21.             wbegindrawing(win);
  22.             werase(0, 0, 1000, 1000);
  23.             drawproc(win, 0, 0, 1000, 1000);
  24.             wenddrawing(win);
  25.         }
  26.         else {
  27.             wbegindrawing(win);
  28.             animate();
  29.             wenddrawing(win);
  30.         }
  31.     }
  32.     wdone();
  33.     exit(0);
  34. }
  35.  
  36. void
  37. drawproc(win, left, top, right, bottom)
  38.     WINDOW *win;
  39.     int left, top, right, bottom;
  40. {
  41.     char buf[100];
  42.     
  43.     switch (ev.type) {
  44.     
  45.     case WE_MOUSE_DOWN:
  46.     case WE_MOUSE_MOVE:
  47.     case WE_MOUSE_UP:
  48.         sprintf(buf,
  49.             "MOUSE EVENT %d, h=%d, v=%d, button=%d, clicks=%d",
  50.             ev.type, ev.u.where.h, ev.u.where.v,
  51.             ev.u.where.button, ev.u.where.clicks);
  52.         break;
  53.     
  54.     case WE_CHAR:
  55.         sprintf(buf, "CHAR '%c' (%d)", ev.u.character, ev.u.character);
  56.         break;
  57.     
  58.     default:
  59.         sprintf(buf, "TYPE %d", ev.type);
  60.         break;
  61.     
  62.     }
  63.     wdrawtext(0, 0, buf, -1);
  64. }
  65.  
  66. animate()
  67. {
  68.     static int h;
  69.     int v = 20;
  70.     
  71.     werase(h, v, h+5, v+5);
  72.     h = (h+1) % 400;
  73.     wpaint(h, v, h+5, v+5);
  74. }
  75.